Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling Third-party Smart Contract Account Applications on Polkadot Based on Account Abstraction.md #1891

Closed
wants to merge 3 commits into from

Conversation

mathida520
Copy link

@mathida520 mathida520 commented Aug 5, 2023

Create Enabling Third-party Smart Contract Account Applications on Polkadot Based on Account Abstraction.md

Project Abstract

Account abstraction upgrades the blockchain accounts of users to smart contracts, but it's hard for users to write and deploy smart contracts by themselves. To help users better set and use their smart contract accounts easily under AA, we would like to extend the existing AA standard to enable all smart contract developers to provide their third-party account applications and services for users. They can greatly improve the user experience, capacity and wallet innovation of AA via our standard interface without compromising on decentralization, self-sovereign and censorship-resistance.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • Payment details have been provided (bank details via email or BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (USDT) address in the application).
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

…lkadot Based on Account Abstraction.md

Create grant application
…lkadot Based on Account Abstraction.md

Create grant application
@CLAassistant
Copy link

CLAassistant commented Aug 5, 2023

CLA assistant check
All committers have signed the CLA.

@mathida520 mathida520 changed the title Create Enabling Third-party Smart Contract Account Applications on Po… Create Enabling Third-party Smart Contract Account Applications on Polkadot Based on Account Abstraction.md Aug 5, 2023
@mathida520 mathida520 changed the title Create Enabling Third-party Smart Contract Account Applications on Polkadot Based on Account Abstraction.md Enabling Third-party Smart Contract Account Applications on Polkadot Based on Account Abstraction.md Aug 5, 2023
Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your interest in our grants program. But this application currently seems mostly focused on Ethereum and the account types there. Are you aware that Polkadot already has an account abstraction in the form of proxies, see for example, https://twitter.com/baderyo_o/status/1653780920871055361 If so, could you specify what the advantage of your solution is and what kind of standard you want to implement? Also, for UI-focused work, we usually ask teams to submit some mock-ups or designs together with the application.

@Noc2 Noc2 added changes requested The team needs to clarify a few things first. details missing Not enough technical details. labels Aug 7, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Aug 7, 2023

Thank you for submitting a grant application.

We've assessed your submission and have found that it requires a higher level of technical detail in order to be considered for review. We encourage you to expand on it by providing a more precise specification/technical details. The section on project details in the application template is a good reference as to what type of information we expect applicants to provide, and these category-specific requirements contain more precise guidelines depending on what type of software you're building.

An area of the application that we often find to be insufficiently elaborated are the milestone deliverables. At a minimum, please indicate what languages/technologies you will be using to implement each deliverable, and provide a technical summary of its expected functionality. Note that deliverables should be tangible, reusable by other teams and in most cases not already present in the ecosystem. If they are, you will need to provide a comparison to existing implementations and explain why it makes sense to fund your approach. Also see our FAQ for a breakdown of what we fund and what we don't.

Let us know as soon as you're done with your changes, and we'll give your application another look!

@mathida520
Copy link
Author

Thanks for your interest in our grants program. But this application currently seems mostly focused on Ethereum and the account types there. Are you aware that Polkadot already has an account abstraction in the form of proxies, see for example, https://twitter.com/baderyo_o/status/1653780920871055361 If so, could you specify what the advantage of your solution is and what kind of standard you want to implement? Also, for UI-focused work, we usually ask teams to submit some mock-ups or designs together with the application.

Dear @Noc2:
Thanks for reviewing our application! Yes we know Polkadot already has account abstraction and we are pretty excited about it, so our proposal is not about enabling account abstraction in Polkadot. Instead it aims at enabling interoperable and universal third-party account applications among different wallets based on AA. Under the current AA standard, different wallets just develop their own account applications and don't accept third-party account applications developed by others, as a result account applications are fragmented and isolated within each wallet just like Web2 with no interconnectivity and interoperability. Therefore our goal is to make each account application universal and applicable for different AA wallets, and third-party developers can provide their account applications to different wallets.

Furthermore, from the end user side, based on account abstraction, we upgrade it to demand abstraction. Users don't need to look for any specific applications first to meet their demands. Alternatively they can directly tell what they need, and our protocol will analyze user demand intelligently, generate the best solution scheme automatically, match and run the corresponding applications to finally give users the content or services they need from applications.

The link to our prototype has been attached within the Development Status section, feel free to have a look and thanks a lot!

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick reply. But could you specify what exactly you want to develop as part of the milestones? For example, what functionality will the ink! smart contracts provide and how is this different from the proxy pallet? If you leverage the proxy pallet, it also already works with different wallets and is universal in this sense.

@Noc2
Copy link
Collaborator

Noc2 commented Aug 16, 2023

I wanted to let you know that I'm closing this because of inactivity. Let me know if I should reopen it.

@Noc2 Noc2 closed this Aug 16, 2023
@mathida520
Copy link
Author

mathida520 commented Aug 18, 2023

Dear @Noc2:
Yes we are still working on our proposal and preparing for the rely to your inquiry. I previously assigned our core technical developer Myron to respond as he knows the technical development on Polkadot via ink!. But recently he is on a business trip unable to rely quickly. I have asked him and he said he would reply soon by the end of this weekend, so could you please reopen our application for him to reply?

Could you please also tell whether our previous answer to your last question works? Any other questions do you have? If you have any other questions feel free to ask and we can answer them all at one time. Thanks a lot for your kindly help!

@semuelle semuelle reopened this Aug 21, 2023
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reopened the pull request. I will continue reviewing the application once it's updated.

| 2. | Smart contracts | We will deliver a set of ink! smart contracts to show the specifications of our AA standard supporting third-party account applications. |


### Milestone 2 Example — Use Cases of Account applications
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Milestone 2 Example — Use Cases of Account applications
### Milestone 2 — Use Cases of Account applications

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your critiques and we have revised them!

| 2. | Smart contracts | We will deliver a set of ink! smart contracts to show the specifications of our third-party account applications as the use cases of our AA standard supporting any third-party account applications. |


### Milestone 2 Example — Demand Abstraction
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Milestone 2 Example — Demand Abstraction
### Milestone 3 — Demand Abstraction

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your critiques and we have revised them!

…lkadot Based on Account Abstraction.md

Specify the Substrate modules in the Milestones
@mathida520
Copy link
Author

Dear @semuelle:
Hello!

Thanks for your kindly help! We have specified the substrate modules we could develop and included them in each milestone via the new changes we committed. Feel free to review and ask any questions if you have. If that works with no additional questions or critiques, feel free to proceed our applications and review other parts, and we will respond and revise accordingly.

Thanks a lot!

@semuelle semuelle self-assigned this Aug 23, 2023
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @mathida520, thanks for the updates. I left a couple of questions below. But my main issue is that I simply don't understand what a lot of the phrases you are using refers to. What are account applications? What are AA wallets?

Also, isn't all of this already possible with proxy accounts? Can you provide an architecture diagram to explain the problem you are trying to solve? Perhaps describe an example problem. I would recommend to leave the "intelligent analysis" out of it for now. There is a section in our application template that should describe projects/technologies that are similar to what is being proposed. It would be great if you could explain what other solutions might exist and how they fall short, whether it's in the Polkadot ecosystem or other ecosystems.

Lastly, does anyone on your team have experience with Substrate, or building and maintaing open source software? I couldn't find much under the accounts you linked.


### Team Code Repos

https://github.com/aawallet/aa-wallet-web-app
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem to exist.

| 0e. | Article | We will publish an article that explains how demand abstraction work and run based on our AA standard, third-party account applications. |
| 1. | User interface | We will design and develop the new way of Web3 user interaction directly based on user demands rather than any specific demands. Users just need to naturally express their specific needs in our user interface, and then the backend system will automatically analyze user demands, find the best solution scheme, and match the corresponding DApps. After the user confirms the solution, the user’s AA account will get the user authorization to execute the solution scheme accordingly across accounts, DApps, and blockchains to meet the demands of users. |
| 2. | Smart contracts | We will deliver a set of ink! smart contracts to show the specifications of our demand abstraction. |
| 3. | Substrate module: AI model | We will create a Substrate module to interpret and analyze the demand users express and specify. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it really necessary to calculate the demand on-chain? I would argue that this is a functionality where centralisation is acceptable and the complexity would make it much easier to do off-chain.


Please provide the following:

The capacity, usability, and personalization of blockchain are limited by the existing crypto account system like externally-owned accounts (EOA) and contract accounts (CA). To address this issue, the recent significant account upgrade called account abstraction (AA) enables users to freely self-define the functions, logic, and settings of their crypto accounts via smart contracts. Compared with the existing EOA and CA, with AA users can have more account functionalities, higher customization, and better usage experience as good as Web2 while maintaining the decentralization of Web3.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this recent significant account upgrade? This sounds like an Ethereum thing.


Given the grant, the expected outcome of our project could be:

- A technical standard achieving third-party account applications based on AA
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by a "technical standard"?

Comment on lines +113 to +115
| 2. | Smart contracts | We will deliver a set of ink! smart contracts to show the specifications of our AA standard supporting third-party account applications. |
| 3. | Substrate module: transaction execution | We will create a Substrate module to define and achieve the interfaces of executing transactions. |
| 4. | Substrate module: identity verification | We will create a Substrate module to define and achieve the interfaces of verifying the identity of users. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the purpose of identifying the identity of users? What identity? What do you mean by "achieve the interfaces of executing transactions"? How do the smart contracts and pallets interact in this architecture?

@semuelle
Copy link
Member

semuelle commented Sep 6, 2023

pinging @mathida520

@semuelle
Copy link
Member

I am closing this application due to inactivity. Please ping us here, @mathida520, if you would like to continue working on it.

@semuelle semuelle closed this Sep 13, 2023
@w3f w3f deleted a comment from github-actions bot Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changes requested The team needs to clarify a few things first. details missing Not enough technical details.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants